Global positioning system receiver

ABSTRACT

A GPS receiver includes a demodulator for obtaining ephemeris data and almanac data from a navigation message sent by satellites, and includes a calculator. The calculator is used for calculating almanac correction parameters according to coordinate differences between ephemeris-based coordinates of the satellites and almanac-based coordinates of the satellites. The GPS receiver also includes a satellite position calculator for calculating the ephemeris-based coordinates of the satellites according to the ephemeris data, for calculating the almanac-based coordinates of the satellites according to the almanac data, and for calculating positions of the satellites according to the ephemeris data, the almanac data and the almanac correction parameters.

TECHNICAL FIELD

The present invention relates to a global positioning system (GPS) andmore particular to a GPS receiver.

BACKGROUND

Currently the demands of automobiles, electronic devices, etc. areincreasing since the related technologies have been rapidly developed. Aglobal positioning system (GPS) has been widely used in theabove-mentioned systems to meet the demands in different fields (e.g.,navigation systems and portable devices).

A GPS receiver is used to receive signals from various satellites and toprocess the received signals in order to perform GPS positioning.Typically, GPS positioning can be performed in a certain time periodafter the GPS receiver is powered on. The GPS receiver has a parameternamed time to first fix (TTFF) that can be defined as a time period forthe GPS receiver to find satellites after the user first turns it on andto provide the first geographical location fix when the GPS receiver hasbeen staying in a standby mode for hours or days. The TTFF can berelatively slow (e.g., a few minutes), e.g., in a weak-signalenvironment.

SUMMARY

A GPS (global positioning system) receiver is disclosed herein. In oneembodiment, the GPS receiver includes a demodulator for obtainingephemeris data and almanac data from a navigation message sent bysatellites, and includes a calculator. The calculator is used forcalculating almanac correction parameters according to coordinatedifferences between ephemeris-based coordinates of the satellites andalmanac-based coordinates of the satellites. The GPS receiver alsoincludes a satellite position calculator for calculating theephemeris-based coordinates of the satellites according to the ephemerisdata, for calculating the almanac-based coordinates of the satellitesaccording to the almanac data, and for calculating positions of thesatellites according to the ephemeris data, the almanac data and thealmanac correction parameters.

BRIEF DESCRIPTION OF THE DRAWINGS

Advantages of the present invention will be apparent from the followingdetailed description of exemplary embodiments thereof, which descriptionshould be considered in conjunction with the accompanying drawings, inwhich:

FIG. 1 is a block diagram of a GPS (global positioning system) receiver,in accordance with one embodiment of the present invention.

FIG. 2 is a flowchart of generating almanac correction parameters, inaccordance with one embodiment of the present invention.

FIG. 3 is a flowchart of updating almanac correction parameters, inaccordance with one embodiment of the present invention.

FIG. 4 is a flowchart of calculating a position of a GPS receiver, inaccordance with one embodiment of the present invention.

DETAILED DESCRIPTION

The present invention illustrates a GPS (global positioning system)receiver which can improve the fast time to first fix (TTFF). Since theembodiments shown in the drawings are only for illustrative purposes,some sub-components and/or peripheral components generally incorporatedin the invention are omitted herein. In describing the embodiments inaccordance with the present invention, specific terminologies areemployed for the sake of clarity. However, the disclosure of this patentspecification is not intended to be limited to the selected terminologyand the specified embodiments. It is understood that each specificelement includes all technical equivalents that operate in a similarmanner.

FIG. 1 illustrates a block diagram of a GPS receiver 100, in accordancewith one embodiment of the present invention. A time to first fix (TTFF)of the GPS receiver 100 can be improved via the employment of thealmanac correction parameters which will be detailed described below. Inone embodiment, the GPS receiver 100 can be included in a GPS system toprocess GPS signals from various satellites.

After the GPS receiver 100 is powered on, a satellite positioningcalculator 170 included in the GPS receiver 100 can calculate relativelyrough positions of the satellites according to the original/previousephemeris data and almanac data stored in a storage device 130 and theoriginal/previous almanac correction parameters stored in a storagedevice 150. An acquisition and track device 110 can acquire and trackvisible satellites according to the relatively rough positions of thesatellites. In one embodiment, the satellites that can be acquired andtracked by the acquisition and track device 110 can be referred to asthe visible satellites in the present disclosure. Then the acquisitionand track device 110 can receive the navigation message from thesatellites.

The GPS receiver 100 can also include a demodulator 120 for demodulatingthe received navigation message and for obtaining the correspondingephemeris data and almanac data from the received navigation messageprovided/sent by the satellites. In one embodiment, the navigationmessage is a 50 Hz signal including data bits that describe the GPS dateand time, and including the ephemeris data and the almanac data. Theephemeris data can contain orbital information and allows the GPSreceiver 100 to calculate the position of each satellite. The almanacdata can contain information and status concerning all the satellitesincluding locations of all the satellites.

The storage device 130 is used to store the aforementioned ephemerisdata and almanac data. The ephemeris data and the almanac data in thestorage device 130 can be updated. In one embodiment, the storage device130 can include an ephemeris storage device 131 for storing theephemeris data and an almanac storage device 133 for storing the almanacdata. In one embodiment, the ephemeris storage device 131 can beintegrated with the almanac storage device 133 to a single storagedevice (e.g., the storage device 130). In another embodiment, theephemeris storage device 131 can be separated from the almanac storagedevice 133.

A calculator (e.g., an almanac correction parameter calculator) 140 canbe used to calculate the almanac correction parameters according tovalid ephemeris data and valid almanac data. The almanac correctionparameter calculator 140 can include a determination device (not shownin FIG. 1) that is used to verify the validity of the ephemeris data,the almanac data, and the almanac correction parameters according to thetime thereof. In one embodiment, the ephemeris data is valid within fourhours, the almanac data is valid within two weeks, and the almanaccorrection parameters are valid within eight hours. The storage device(e.g., an almanac correction parameter storage device) 150 is used tostore the almanac correction parameters. The almanac correctionparameters in the almanac correction parameter storage device 150 can beupdated.

A real-time clock 160 is included in the GPS receiver 100 for recordingan operating time of the GPS receiver 100 and converting the operatingtime to a GPS time. The satellite positioning calculator 170 included inthe GPS receiver 100 can read the ephemeris data and the almanac data inthe storage device 130 and the almanac correction parameters from thealmanac correction parameter storage device 150. The satellitepositioning calculator 170 can calculate the corrected positions (e.g.,relatively precise positions) of the satellites according to the currentGPS time, the updated ephemeris data, the updated almanac data, and theupdated almanac correction parameters. A positioning device 180 cancalculate a position of the GPS receiver 100 according to the correctedpositions of the satellites.

FIG. 2 is an exemplary flowchart 200 of generating the almanaccorrection parameters, in accordance with one embodiment of the presentinvention. The almanac correction parameters can be calculated by thealmanac correction parameter calculator 140 in FIG. 1. In oneembodiment, the almanac correction parameter calculator 140 calculatesthe almanac correction parameters according to coordinate differencesbetween a plurality of ephemeris-based coordinates of the satellites anda plurality of almanac-based coordinates of the satellites and accordingto clock differences between ephemeris-based clock drifts of thesatellites and almanac-based clock drifts of the satellites. In oneembodiment, the satellite position calculator 170 calculates theephemeris-based coordinates and the ephemeris-based clock driftsaccording to the ephemeris data, and calculates the almanac-basedcoordinates and calculates the almanac-based clock drifts according tothe almanac data.

At step 210, three-dimensional ephemeris-based coordinates x_(e)(t),y_(e)(t), and z_(e)(t) and an ephemeris-based clock drift t_(e)(t) ofeach sampling point at each satellite can be calculated according to thecorresponding ephemeris data by the satellite positioning calculator 170at GPS time t. At step 220, three-dimensional almanac-based coordinatesx_(a)(t), y_(a)(t), and z_(a)(t) and an almanac-based clock driftt_(a)(t) of each sampling point at each satellite can be calculatedaccording to the corresponding almanac data by the satellite positioningcalculator 170 at time t. At step 230, coordinate differences Δx(t),Δy(t), and Δz(t) between the ephemeris-based coordinates and thealmanac-based coordinates are calculated by the almanac correctionparameter calculator 140 after the almanac correction parametercalculator 140 receives the ephemeris-based coordinators and thealmanac-based coordinates calculated by the satellite positioningcalculator 170 at time t, in one embodiment. More specifically, Δx(t)can indicate the coordinate difference between x_(e)(t) and x_(a)(t) atthe same sampling point, Δy(t) can indicate the coordinate differencebetween y_(e)(t) and y_(a)(t) at the same sampling point, and z_(a)(t)can indicate the coordinate difference between z_(e)(t) and z_(a)(t) atthe same sampling point, in one embodiment. The clock difference Δt(t)between the ephemeris-based clock drift t_(e)(t) and the almanac-basedclock drift t_(a)(t) is also calculated by the almanac correctionparameter calculator 140, in one embodiment. In one embodiment, Δx(t),Δy(t), Δz(t), and Δt(t) can be high-order multinomial functions of timet respectively, shown in equations (1), (2), (3), and (4).

$\begin{matrix}{{\Delta \; {x(t)}} = {\sum\limits_{k = 0}^{n}{a_{k}t^{k}}}} & (1) \\{{\Delta \; {y(t)}} = {\sum\limits_{k = 0}^{n}{b_{k}t^{k}}}} & (2) \\{{\Delta \; {z(t)}} = {\sum\limits_{k = 0}^{n}{c_{k}t^{k}}}} & (3) \\{{\Delta \; {t(t)}} = {\sum\limits_{k = 0}^{n}{d_{k}t^{k}}}} & (4)\end{matrix}$

N represents the highest order of the multinomial functions. a₀, a₁ . .. a_(n), b₀, b₁ . . . b_(n), c₀, c₁ . . . c_(n), and d₀, d₁ . . . d_(n)are the almanac correction parameters.

At step 240, the respective minimum values of the differences Δx(t),Δy(t), Δz(t), and Δt(t) are calculated via a multinomial approximationaccording to the least square method by the almanac correctionparameters calculator 140, in one embodiment. Assume that the number ofsampling points of each satellite is m+1, then the least squareapproximation of the minimum value of Δx(t) can be shown in equation(5).

$\begin{matrix}{\min \left( {\sum\limits_{i = 0}^{m}\left( {{\sum\limits_{k = 0}^{n}{a_{k}t^{i}}} - {\Delta \; {x(t)}}} \right)^{2}} \right)} & (5)\end{matrix}$

At step 250, the almanac correction parameters can be obtained accordingto the least-square approximation, e.g., equation (5). Morespecifically, the almanac correction parameters a₀, a₁ . . . a_(n) forthe x-axis coordinates can be calculated according to the least squareapproximation by equation (6) which is equivalent to equation (5), inone embodiment.

$\begin{matrix}{{\begin{bmatrix}{m + 1} & {\sum\limits_{i = 0}^{m}t_{i}} & \ldots & {\sum\limits_{i = 0}^{m}t_{i}^{n}} \\{\sum\limits_{i = 0}^{m}t_{i}} & {\sum\limits_{i = 0}^{m}t_{i}^{2}} & \ldots & {\sum\limits_{i = 0}^{m}t_{i}^{n + 1}} \\\vdots & \vdots & \; & \vdots \\{\sum\limits_{i = 0}^{m}t_{i}^{n}} & {\sum\limits_{i = 0}^{m}t_{i}^{n + 1}} & \ldots & {\sum\limits_{i = 0}^{m}t_{i}^{2n}}\end{bmatrix}\begin{bmatrix}a_{0} \\a_{1} \\\vdots \\a_{n}\end{bmatrix}} = \begin{bmatrix}{\sum\limits_{i = 0}^{m}{\Delta \; {x\left( t_{i} \right)}}} \\{\sum\limits_{i = 0}^{m}{{t \cdot \Delta}\; {x\left( t_{i} \right)}}} \\\vdots \\{\sum\limits_{i = 0}^{m}{{t^{n} \cdot \Delta}\; {x\left( t_{i} \right)}}}\end{bmatrix}} & (6)\end{matrix}$

In one embodiment, each satellite is started to be sampled from twohours before a reference time t_(oa) (i.e., t_(oa)−2) in every twentyminutes. t_(oa) is a time referred as the reference time for sampling,in one embodiment. t_(i) represents a sampling time for the i-thsampling point. Δx(t_(i)) represents the coordinate difference betweenthe ephemeris-based coordinate and the almanac-based coordinate for thex axis for the i-th sampling point at t_(i). The number of the samplingpoints m+1 for each satellite is 12, in one embodiment. Accordingly, thesample period T_(sample) for sampling 12 sampling points of eachsatellite can be four hours (e.g., 20 minutes*12=240 minutes=4 hours),in one embodiment. In one embodiment, the almanac correction parameterscan be remained valid for eight hours after the update of the previousalmanac correction parameters.

Similar to equation (6), the almanac correction parameters b₀, b₁ . . .b_(n), c₀, c₁ . . . c_(n), and d₀, d₁ . . . d_(n) for the y-axiscoordinates, z-axis coordinates and the clock drift can also be obtainedvia the least-square approximation of Δy(t), Δz(t), and Δt(t)respectively. If the value of n is greater, more data can be providedfor approximation and thus the accuracy of the almanac correctionparameters can be higher. If the sample period T_(sample) of thesatellites is longer, a longer valid period for the almanac correctionparameters can be obtained. For example, if the sample period of thesatellites is greater than fours hours, the valid period for the almanaccorrection parameters can be greater than eight hours after the updateof the previous almanac correction parameters.

FIG. 3 is a flowchart 300 of updating the almanac correction parameters,in accordance with one embodiment of the present invention. The almanaccorrection parameters can be updated by the almanac correction parametercalculator 140 and stored in the almanac correction parameter storagedevice 150 in FIG. 1. FIG. 3 is described in combination with FIG. 1.

At step 310, the GPS receiver 100 is powered on. At step 320, theacquisition and track device 110 can acquire and track the visiblesatellites. At step 330, the modulator 120 can demodulate the receivednavigation message of the visible satellites and obtain thecorresponding ephemeris data and almanac data from the receivednavigation message.

At step 340, the almanac correction parameter calculator 140 can verifythe validity of the new ephemeris data, the new almanac data, and theprevious almanac correction parameters according to the time thereof. Inone embodiment, the ephemeris data is considered to be valid within fourhours, the almanac data is considered to be valid within two weeks, andthe almanac correction parameters are considered to be valid withineight hours. In one embodiment, new almanac correction parameters willbe calculated by the almanac correction parameter calculator 140 if theoriginal/previous almanac correction parameters are invalid, and both ofthe ephemeris data and the almanac data are still valid at step 350. Ifboth of the ephemeris data and the almanac data are invalid, or all theephemeris data, the almanac data and the almanac correction parametersare valid, the flowchart 300 returns to step 330 to start a next cycle.At step 350, the new almanac correction parameters can be stored in thealmanac correction parameter storage device 150. In other words, thealmanac correction parameter storage device 150 can be updated with thenew almanac correction parameters.

FIG. 4 is a flowchart 400 of calculating a position of a GPS receiver(e.g., the GPS receiver 100 in FIG. 1), in accordance with oneembodiment of the present invention. At step 410, the ephemeris andalmanac data can be obtained from the storage device 130 and the almanaccorrection parameters can be obtained from the almanac correctionparameter storage device 150. At step 430, the determination device (notshown in FIG. 1) included in the almanac correction parameter calculator140 can verify the validity of the ephemeris data. If the ephemeris datais valid, the positions of the visible satellites can be calculatedrespectively according to the ephemeris data by the satellite positioncalculator 170 at step 440. If the ephemeris data is invalid, thedetermination device can further verify validity of the almanac data andthe almanac correction parameters at step 450. If the almanac data orthe almanac correction parameters are invalid, the flowchart 400 willreturn to step 430 for repetitively verify the validity of the ephemerisdata and the almanac data stored in the storage device 130 and thealmanac correction parameters stored in the storage device 150, e.g., bythe satellite position calculator 170. If the almanac data and thealmanac correction parameters are valid, the positions of the visiblesatellites can be calculated according to the valid almanac data andalmanac correction parameters by the satellite position calculator 170at step 460 that will be described in detail below.

In one embodiment, the coordinates x′, y′ and z′ of each visiblesatellite and the clock drift T′ of each visible satellite at time t canbe calculated according to the almanac data. Then correction valuesΔx′(t), Δy′(t), Δz′(t) and ΔT′(t) for the coordinates x′, y′ and z′ andthe clock drift T are respectively calculated according to the almanaccorrection parameters shown as equations (7), (8), (9) and (10).

$\begin{matrix}{{\Delta \; {x^{\prime}(t)}} = {\sum\limits_{k = 0}^{n}{a_{k}t^{k}}}} & (7) \\{{\Delta \; {y^{\prime}(t)}} = {\sum\limits_{k = 0}^{n}{b_{k}t^{k}}}} & (8) \\{{\Delta \; {z^{\prime}(t)}} = {\sum\limits_{k = 0}^{n}{c_{k}t^{k}}}} & (9) \\{{\Delta \; {T^{\prime}(t)}} = {\sum\limits_{k = 0}^{n}{d_{k}t^{k}}}} & (10)\end{matrix}$

N is the highest order for the almanac correction parameters and t isthe current GPS time. a_(k), b_(k), and c_(k) are the almanac correctionparameters for the corrected coordinates x, y, and z at time t. d_(k) isthe almanac correction parameter for the corrected time drift T.

x, y, z, and T can be calculated according to the correction valuesobtained at time t, shown in equation (11), (12), (13), and (14).

x=x′+Δx′  (11)

y=y′+Δy′  (12)

z=z′+Δz′  (13)

T=T′+ΔT′  (14)

At step 470, the position of the GPS receiver 100 can be calculatedaccording to the corrected position of each satellite.

In operation, relatively rough positions of the satellites can becalculated according to the original ephemeris data and almanac dataand/or the original almanac correction parameters after the GPS receiver100 is powered on. The acquisition and track device 110 can acquire andtrack visible satellites according to the relatively rough positions ofthe satellites. Navigation message of the visible satellites can beobtained so that the corresponding new ephemeris data and almanac dataare obtained by the demodulator 120. The original/previous ephemerisdata and almanac data in the storage device 130 can be updated by thenew ephemeris data and almanac data. The updated ephemeris data andalmanac data can be employed to calculate the new almanac correctionparameters by the almanac correction parameter calculator 140. Hence,the almanac correction parameters stored in the storage device 150 canbe updated by the new almanac correction parameters.

The satellite position calculator 170 can calculate the correctedpositions of the satellites according to the updated ephemeris data andalmanac data and the updated almanac correction parameters. The positionof the GPS receiver 100 can be calculated according to the correctedpositions of the satellites.

Advantageously, the combination of the almanac data and the almanaccorrection parameters is employed for calculating the position of theGPS receiver 100 when the ephemeris data is invalid, in one embodiment.The efficiency of acquisition and track can be improved and theprecision of positioning can be increased due to the corrected positionscalculated by the positioning calculator 170. As a result, The TTFF(time to first fix) can also be decreased. In one embodiment, the TTFFcan be decreased to 15 seconds.

The embodiments that have been described herein, however, are but someof the several that utilize this invention and are set forth here by wayof illustration but not of limitation. It is obvious that many otherembodiments, which will be readily apparent to those skilled in the art,may be made without departing materially from the spirit and scope ofthe invention as defined in the appended claims. Furthermore, althoughelements of the invention may be described or claimed in the singular,the plural is contemplated unless limitation to the singular isexplicitly stated.

1. A global positioning system (GPS) receiver comprising: a demodulatorfor obtaining ephemeris data and almanac data from a navigation messagesent by a plurality of satellites; a calculator for calculating aplurality of almanac correction parameters according to coordinatedifferences between a plurality of ephemeris-based coordinates of saidplurality of satellites and a plurality of almanac-based coordinates ofsaid plurality of satellites; and a satellite position calculator forcalculating said plurality of ephemeris-based coordinates according tosaid ephemeris data, for calculating said plurality of almanac-basedcoordinates according to said almanac data, and for calculating aplurality of positions of said plurality of satellites according to saidephemeris data, said almanac data and said plurality of almanaccorrection parameters.
 2. The GPS receiver of claim 1, wherein saidcalculator verifies validity of said ephemeris data, said almanac data,and said plurality of almanac correction parameters.
 3. The GPS receiverof claim 1, wherein said satellite position calculator calculates saidplurality of positions of said plurality of satellites according to saidephemeris data if said ephemeris data is valid, and wherein saidcalculator verifies validity of said almanac data and said plurality ofalmanac correction parameters if said ephemeris data is invalid.
 4. TheGPS receiver of claim 3, wherein said satellite position calculatorcalculates said plurality of positions of said plurality of satellitesaccording to said almanac data and said plurality of almanac correctionparameters if said almanac data and said plurality of almanac correctionparameters are valid.
 5. The GPS receiver of claim 1, wherein saidcalculator calculates said plurality of almanac correction parametersaccording to clock differences between a plurality of ephemeris-basedclock drifts of said plurality of satellites and a plurality ofalmanac-based clock drifts of said plurality of satellites, and whereinsaid satellite position calculator calculates said plurality ofephemeris-based clock drifts and said plurality of almanac-based clockdrifts according to said ephemeris data and said almanac datarespectively.
 6. The GPS receiver of claim 5, wherein said calculatorcalculates minimum values of said coordinate differences between saidephemeris-based coordinates and said almanac-based coordinates obtainedat time t according to a least square approximation of said coordinatedifferences, and calculates minimum values of said clock differencesbetween said plurality of ephemeris-based clock drifts and saidplurality of almanac-based clock drifts obtained at said time taccording to a least square approximation of said clock differences, inorder to obtain said plurality of almanac correction parameters.
 7. TheGPS receiver of claim 6, wherein said plurality of almanac correctionparameters comprise parameters a₀, a₁ . . . a_(n), wherein saidparameters a₀, a₁ . . . a_(n) are calculated according to said leastsquare approximation by equation (1), $\begin{matrix}{{\begin{bmatrix}{m + 1} & {\sum\limits_{i = 0}^{m}t_{i}} & \ldots & {\sum\limits_{i = 0}^{m}t_{i}^{n}} \\{\sum\limits_{i = 0}^{m}t_{i}} & {\sum\limits_{i = 0}^{m}t_{i}^{2}} & \ldots & {\sum\limits_{i = 0}^{m}t_{i}^{n + 1}} \\\vdots & \vdots & \; & \vdots \\{\sum\limits_{i = 0}^{m}t_{i}^{n}} & {\sum\limits_{i = 0}^{m}t_{i}^{n + 1}} & \ldots & {\sum\limits_{i = 0}^{m}t_{i}^{2n}}\end{bmatrix}\begin{bmatrix}a_{0} \\a_{1} \\\vdots \\a_{n}\end{bmatrix}} = \begin{bmatrix}{\sum\limits_{i = 0}^{m}{\Delta \; {x\left( t_{i} \right)}}} \\{\sum\limits_{i = 0}^{m}{{t \cdot \Delta}\; {x\left( t_{i} \right)}}} \\\vdots \\{\sum\limits_{i = 0}^{m}{{t^{n} \cdot \Delta}\; {x\left( t_{i} \right)}}}\end{bmatrix}} & (1)\end{matrix}$ and wherein m+1 represents a number of sampling points ofone satellite of said plurality of satellites, t_(i) represents a sampletime, n represents a highest order of said equation (1), and Δx(t_(i))represents a coordinate difference between one almanac-based coordinateof said satellite and one ephemeris-based coordinate of said satellite.8. The GPS receiver of claim 5, wherein said satellite positioncalculator calculates said plurality of almanac-based coordinates x′,y′, z′, and said plurality of almanac-based clock drifts T′ according tosaid almanac data at time t, wherein said satellite position calculatorfurther calculates correction values Δx′(t), Δy′(t), Δz′(t), and ΔT′(t)shown by equations (2), (3), (4), and (5) respectively, $\begin{matrix}{{\Delta \; {x^{\prime}(t)}} = {\sum\limits_{k = 0}^{n}{a_{k}t^{k}}}} & (2) \\{{\Delta \; {y^{\prime}(t)}} = {\sum\limits_{k = 0}^{n}{b_{k}t^{k}}}} & (3) \\{{\Delta \; {z^{\prime}(t)}} = {\sum\limits_{k = 0}^{n}{c_{k}t^{k}}}} & (4) \\{{\Delta \; {T^{\prime}(t)}} = {\sum\limits_{k = 0}^{n}{d_{k}t^{k}}}} & (5)\end{matrix}$ and wherein said satellite position calculator calculatesa plurality of corrected coordinates x, y, z, and a plurality ofcorrected clock drifts T of said plurality of satellites by equations(6), (7), (8), and (9),x=x′+Δx′  (6)y=y′+Δy′  (7)z=z′+Δz′  (8)T=T′+ΔT′  (9) wherein n represents a highest order of said plurality ofalmanac correction parameters, t represents a current GPS time, a_(k),b_(k), c_(k), d_(k) represents said plurality of almanac correctionparameters.
 9. The GPS receiver of claim 1, wherein said satelliteposition calculator calculates a plurality of correction valuesaccording to said plurality of almanac correction parametersrespectively, and wherein said satellite position calculator calculatessaid plurality of positions by adding said plurality of correctionvalues to said plurality of almanac-based coordinates respectively. 10.The GPS receiver of claim 1, further comprising: a positioning devicecoupled to said satellite position calculator for calculating a positionof said GPS receiver according to said positions of said plurality ofsatellites.
 11. The GPS receiver of claim 1, further comprising: astorage device for storing said plurality of almanac correctionparameters.
 12. A method for positioning a global positioning system(GPS) receiver, comprising: obtaining ephemeris data and almanac datafrom a navigation message sent by a plurality of satellites; calculatinga plurality of ephemeris-based coordinates and a plurality ofephemeris-based clock drifts of said plurality of satellites accordingto said ephemeris data; calculating a plurality of almanac-basedcoordinates and a plurality of almanac-based clock drifts of saidplurality of satellites according to said almanac data; calculating aplurality of almanac correction parameters according to coordinatedifferences between said plurality of ephemeris-based coordinates andsaid plurality of almanac-based coordinates and according to clockdifferences between said plurality of ephemeris-based clock drifts andsaid plurality of almanac-based clock drifts; and calculating aplurality of positions of said plurality of satellites according to saidephemeris data, said almanac data and said plurality of almanaccorrection parameters.
 13. The method of claim 12, further comprising:calculating said plurality of positions of said plurality of satellitesaccording to said ephemeris data if said ephemeris data is valid; andverifying validity of said almanac data and said plurality of almanaccorrection parameters if said ephemeris data is invalid.
 14. The methodof claim 13, further comprising: calculating said plurality of positionsof said plurality of satellites according to said almanac data and saidplurality of almanac correction parameters if said almanac data and saidplurality of almanac correction parameters are valid.
 15. The method ofclaim 12, wherein calculating said plurality of almanac correctionparameters further comprises: calculating minimum values of saidcoordinate differences between said ephemeris-based coordinates and saidalmanac-based coordinates obtained at time t according to a least squareapproximation of said coordinate differences; and calculating minimumvalues of said clock differences between said plurality ofephemeris-based clock drifts and said plurality of almanac-based clockdrifts obtained at said time t according to a least square approximationof said clock differences.
 16. The method of claim 15, wherein saidplurality of almanac correction parameters comprises parameters a₀, a₁ .. . a_(n), wherein said parameters a₀, a₁ . . . a_(n) are calculatedaccording to said least square approximation by equation (10),$\begin{matrix}{{\begin{bmatrix}{m + 1} & {\sum\limits_{i = 0}^{m}t_{i}} & \ldots & {\sum\limits_{i = 0}^{m}t_{i}^{n}} \\{\sum\limits_{i = 0}^{m}t_{i}} & {\sum\limits_{i = 0}^{m}t_{i}^{2}} & \ldots & {\sum\limits_{i = 0}^{m}t_{i}^{n + 1}} \\\vdots & \vdots & \; & \vdots \\{\sum\limits_{i = 0}^{m}t_{i}^{n}} & {\sum\limits_{i = 0}^{m}t_{i}^{n + 1}} & \ldots & {\sum\limits_{i = 0}^{m}t_{i}^{2n}}\end{bmatrix}\begin{bmatrix}a_{0} \\a_{1} \\\vdots \\a_{n}\end{bmatrix}} = \begin{bmatrix}{\sum\limits_{i = 0}^{m}{\Delta \; {x\left( t_{i} \right)}}} \\{\sum\limits_{i = 0}^{m}{{t \cdot \Delta}\; {x\left( t_{i} \right)}}} \\\vdots \\{\sum\limits_{i = 0}^{m}{{t^{n} \cdot \Delta}\; {x\left( t_{i} \right)}}}\end{bmatrix}} & (10)\end{matrix}$ and wherein m+1 represents a number of sampling points ofone satellite of said plurality of satellites, t_(i) represents a sampletime, n represents a highest order of said equation (10), and Δx(t_(i))represents a coordinate difference between one almanac-based coordinateof said satellite and one ephemeris-based coordinate of said satellite.17. The method of claim 12, wherein calculating said plurality ofpositions of said plurality of satellites further comprises: calculatinga plurality of correction values according to said plurality of almanaccorrection parameters respectively; and adding said plurality ofcorrection values to said plurality of almanac-based coordinatesrespectively to calculate said plurality of positions.
 18. The method ofclaim 12, wherein calculating said plurality of positions of saidplurality of satellites further comprises: calculating said plurality ofalmanac-based coordinates x′, y′, z′ of said plurality of satellites,and said plurality of almanac-based clock drifts T′ according to saidalmanac data at time t; calculating correction values Δx′(t), Δy′(t),Δz′(t), and ΔT′(t) shown by equations (11), (12), (13), and (14)respectively, $\begin{matrix}{{\Delta \; {x^{\prime}(t)}} = {\sum\limits_{k = 0}^{n}{a_{k}t^{k}}}} & (11) \\{{\Delta \; {y^{\prime}(t)}} = {\sum\limits_{k = 0}^{n}{b_{k}t^{k}}}} & (12) \\{{\Delta \; {z^{\prime}(t)}} = {\sum\limits_{k = 0}^{n}{c_{k}t^{k}}}} & (13) \\{{\Delta \; {T^{\prime}(t)}} = {\sum\limits_{k = 0}^{n}{d_{k}t^{k}}}} & (14)\end{matrix}$ wherein n represents a highest order for said plurality ofalmanac correction parameters, t represents a current GPS time, anda_(k), b_(k), c_(k), and d_(k) represent said plurality of almanaccorrection parameters; and calculating a plurality of correctedcoordinates x, y, z, and a plurality of corrected clock drifts T of saidplurality of satellites by equations (15), (16), (17), and (18).x=x′+Δx′  (15)y=y′+Δy′  (16)z=z′+Δz′  (17)T=T′+ΔT′  (18)
 19. The method of claim 12, further comprising:calculating a position of said GPS receiver according to said positionsof said plurality of satellites.
 20. The method of claim 12, furthercomprising: storing said plurality of almanac correction parameters. 21.A GPS (global positioning system) comprising: an acquisition and trackdevice for acquiring and tracking a plurality of satellites andobtaining a navigation message from said plurality of satellites; ademodulator for obtaining ephemeris data and almanac data from saidnavigation message; a calculator for calculating a plurality of almanaccorrection parameters according to coordinate differences between aplurality of ephemeris-based coordinates of said plurality of satellitesand a plurality of almanac-based coordinates of said plurality ofsatellites and according to clock differences between a plurality ofephemeris-based clock drifts of said plurality of satellites and aplurality of almanac-based clock drifts of said plurality of satellites;and a satellite position calculator coupled to said acquisition andtrack device and for calculating said plurality of ephemeris-basedcoordinates and said plurality of ephemeris-based clock drifts accordingto said ephemeris data, for calculating said plurality of almanac-basedcoordinates and said plurality of almanac-based clock drifts accordingto said almanac data, and for calculating a plurality of positions ofsaid plurality of satellites respectively according to said ephemerisdata, said almanac data and said plurality of almanac correctionparameters.
 22. The GPS system of claim 21, wherein said calculatorcalculates minimum values of said coordinate differences between saidephemeris-based coordinates and said almanac-based coordinates obtainedat time t according to a least square approximation of said coordinatedifferences, and calculates minimum values of said clock differencesbetween said plurality of ephemeris-based clock drifts and saidplurality of almanac-based clock drifts obtained at said time taccording to a least square approximation of said clock differences, inorder to obtain said plurality of almanac correction parameters.
 23. TheGPS system of claim 22, wherein said plurality of almanac correctionparameters comprise parameters a₀, a₁ . . . a_(n), wherein saidparameters a₀, a₁ . . . a_(n) are calculated according to said leastsquare approximation by equation (19), $\begin{matrix}{{\begin{bmatrix}{m + 1} & {\sum\limits_{i = 0}^{m}t_{i}} & \ldots & {\sum\limits_{i = 0}^{m}t_{i}^{n}} \\{\sum\limits_{i = 0}^{m}t_{i}} & {\sum\limits_{i = 0}^{m}t_{i}^{2}} & \ldots & {\sum\limits_{i = 0}^{m}t_{i}^{n + 1}} \\\vdots & \vdots & \; & \vdots \\{\sum\limits_{i = 0}^{m}t_{i}^{n}} & {\sum\limits_{i = 0}^{m}t_{i}^{n + 1}} & \ldots & {\sum\limits_{i = 0}^{m}t_{i}^{2n}}\end{bmatrix}\begin{bmatrix}a_{0} \\a_{1} \\\vdots \\a_{n}\end{bmatrix}} = \begin{bmatrix}{\sum\limits_{i = 0}^{m}{\Delta \; {x\left( t_{i} \right)}}} \\{\sum\limits_{i = 0}^{m}{{t \cdot \Delta}\; {x\left( t_{i} \right)}}} \\\vdots \\{\sum\limits_{i = 0}^{m}{{t^{n} \cdot \Delta}\; {x\left( t_{i} \right)}}}\end{bmatrix}} & (19)\end{matrix}$ wherein m+1 represents a number of sampling points of onesatellite of said plurality of satellites, t_(i) represents a sampletime, n represents a highest order of said equation, and Δx(t_(i))represents a coordinate difference between one almanac-based coordinateof said satellite and one ephemeris-based coordinates of said satellite.24. The GPS system of claim 21, wherein said satellite positioncalculator calculates a plurality of correction values according to saidplurality of almanac correction parameters respectively, and whereinsaid satellite position calculator calculates said plurality ofpositions by adding said plurality of correction values to saidplurality of almanac-based coordinates respectively.